Summary of Derived Media Handler Components
C Summary
Constants
/* flags in flags parameter of MediaSetHandlerCapabilities function */ enum { handlerHasSpatial = 1<<0, /* draws */ handlerCanClip = 1<<1, /* clips */ handlerCanMatte = 1<<2, /* reserved */ handlerCanTransferMode = 1<<3, /* does transfer modes */ handlerNeedsBuffer = 1<<4, /* use offscreen buffer */ handlerNoIdle = 1<<5, /* never draws */ handlerNoScheduler = 1<<6, /* schedules self */ handlerWantsTime = 1<<7, /* needs more time */ handlerCGrafPortOnly = 1<<8 /* color only */ }; /* values for inFlags parameter of MediaIdle function */ enum { mMustDraw = 1<<3, /* must draw now */ mAtEnd = 1<<4, /* current time corresponds to end of movie */ mPreflightDraw = 1<<5 /* must not draw */ }; /* values for outFlags parameter of MediaIdle function */ enum { mDidDraw = 1<<0, /* did draw */ mNeedsToDraw = 1<<2 /* needs to draw */ }; /* component type and subtype values */ #define MediaHandlerType 'mhlr' /* derived media handler */ #define BaseMediaType 'gnrc' /* base media handler */ /* constants used in the characteristic parameter of the MediaHasCharacteristic function */ #define VisualMediaCharacteristic'eyes' /* visual media characteristic */ #define AudioMediaCharacteristic 'ears' /* audio media characteristic */ /* selectors for derived media handler components */ enum { enum { kMediaInitializeSelect = 0x501, /* MediaInitialize */ kMediaSetHandlerCapabilitiesSelect = 0x502, /* MediaSetHandlerCapabilities */ kMediaIdleSelect = 0x503, /* MediaIdle */ kMediaGetMediaInfoSelect = 0x504, /* MediaGetMediaInfo */ kMediaPutMediaInfoSelect = 0x505, /* MediaPutMediaInfo */ kMediaSetActiveSelect = 0x506, /* MediaSetActive */ kMediaSetRateSelect = 0x507, /* MediaSetRate */ kMediaGGetStatusSelect = 0x508, /* MediaGGetStatus */ kMediaTrackEditedSelect = 0x509, /* MediaTrackEdited */ kMediaSetMediaTimeScaleSelect = 0x50A, /* MediaSetMediaTimeScale */ kMediaSetMovieTimeScaleSelect = 0x50B, /* MediaSetMovieTimeScale */ kMediaSetGWorldSelect = 0x50C, /* MediaSetGWorld */ kMediaSetDimensionsSelect = 0x50D, /* MediaSetDimensions */ kMediaSetClipSelect = 0x50E, /* MediaSetClip */ kMediaSetMatrixSelect = 0x50F, /* MediaSetMatrix */ kMediaGetTrackOpaqueSelect = 0x510, /* MediaGetTrackOpaque */ kMediaSetGraphicsModeSelect = 0x511, /* MediaSetGraphicsMode */ kMediaGetGraphicsModeSelect = 0x512, /* MediaGetGraphicsMode */ kMediaGSetVolumeSelect = 0x513, /* MediaGSetVolume */ kMediaSetSoundBalanceSelect = 0x514, /* MediaSetSoundBalance */ kMediaGetSoundBalanceSelect = 0x515, /* MediaGetSoundBalance */ kMediaGetNextBoundsChangeSelect = 0x516, /* MediaGetNextBoundsChange */ kMediaGetSrcRgnSelect = 0x517, /* MediaGetSrcRgn */ kMediaPrerollSelect = 0x518, /* MediaPreroll */ kMediaSampleDescriptionChangedSelect = 0x519, /* MediaSampleDescriptionChanged */ kMediaHasCharacteristicSelect = 0x51A /* MediaHasCharacteristic */ };Data Type
typedef struct { short version; /* version--always 0 */ Movie theMovie; /* movie identifier */ Track theTrack; /* track identifier */ Media theMedia; /* media identifier */ TimeScale movieScale; /* movie's time scale */ TimeScale mediaScale; /* media's time scale */ TimeValue movieDuration; /* movie's duration */ TimeValue trackDuration; /* track's duration */ TimeValue mediaDuration; /* media's duration */ Fixed effectiveRate; /* media's effective rate */ TimeBase timeBase; /* media's time base */ short volume; /* media's volume */ Fixed width; /* width of display area */ Fixed height; /* height of display area */ MatrixRecord trackMovieMatrix; /* transformation matrix */ CGrafPtr moviePort; /* movie's graphics port */ GDHandle movieGD; /* movie's graphics device */ PixMapHandle trackMatte; /* track's matte */ } GetMovieCompleteParams;Functions
Managing Your Media Handler Component
pascal ComponentResult MediaInitialize (ComponentInstance ci, GetMovieCompleteParams *gmc); pascal ComponentResult MediaIdle (ComponentInstance ci, TimeValue atMediaTime, long flagsIn, long *flagsOut, const TimeRecord *movieTime); pascal ComponentResult MediaGGetStatus (ComponentInstance ci, ComponentResult *statusErr);General Data Management
pascal ComponentResult MediaPutMediaInfo (ComponentInstance ci, Handle h); pascal ComponentResult MediaGetMediaInfo (ComponentInstance ci, Handle h); pascal ComponentResult MediaSetActive (ComponentInstance ci, Boolean enableMedia); pascal ComponentResult MediaPreroll (ComponentInstance ci, TimeValue time, Fixed rate); pascal ComponentResult MediaSetRate (ComponentInstance ci, Fixed rate); pascal ComponentResult MediaTrackEdited (ComponentInstance ci); pascal ComponentResult MediaSampleDescriptionChanged (ComponentInstance ci, long index); pascal ComponentResult MediaHasCharacteristic (ComponentInstance ci, OSType characteristic, Boolean *hasIt); pascal ComponentResult MediaSetMediaTimeScale (ComponentInstance ci, TimeScale newTimeScale); pascal ComponentResult MediaSetMovieTimeScale (ComponentInstance ci, TimeScale newTimeScale);Graphics Data Management
pascal ComponentResult MediaSetGWorld (ComponentInstance ci, CGrafPtr aPort, GDHandle aGD); pascal ComponentResult MediaSetDimensions (ComponentInstance ci, Fixed width, Fixed height); pascal ComponentResult MediaSetMatrix (ComponentInstance ci, const MatrixRecord *trackMovieMatrix); pascal ComponentResult MediaSetClip (ComponentInstance ci, RgnHandle theClip); pascal ComponentResult MediaGetTrackOpaque (ComponentInstance ci, Boolean *trackIsOpaque); pascal ComponentResult MediaGetNextBoundsChange (ComponentInstance ci, TimeValue *when); pascal ComponentResult MediaGetSrcRgn (ComponentInstance ci, RgnHandle rgn, TimeValue atMediaTime);Sound Data Management
pascal ComponentResult MediaGSetVolume (ComponentInstance ci, short volume);Base Media Handler Utility Function
pascal ComponentResult MediaSetHandlerCapabilities (ComponentInstance ci, long flags, long flagsMask);Pascal Summary
Constants
CONST {flags in flags parameter of MediaSetHandlerCapabilities function} handlerHasSpatial = $1; {draws} handlerCanClip = $2; {clips} handlerCanMatte = $4; {reserved} handlerCanTransferMode = $8; {does transfer modes} handlerNeedsBuffer = $10; {use offscreen buffer} handlerNoIdle = $20; {never draws} handlerNoScheduler = $40; {schedules self} handlerWantsTime = $80; {needs more time} handlerCGrafPortOnly = $100; {color only} {values for inFlags parameter of MediaIdle function} mMustDraw = $8; {must draw now} mAtEnd = $10; {current time corresponds to } { end of movie} mPreflightDraw = $20; {must not draw} {values for outFlags parameter of MediaIdle function} mDidDraw = $1; {did draw} mNeedsToDraw = $4; {needs to draw} {component type and subtype values} MediaHandlerType 'mhlr' {derived media handler} BaseMediaType 'gnrc' {base media handler} {constants used in the characteristic parameter of the } { MediaHasCharacteristic function} VisualMediaCharacteristic 'eyes' {visual media characteristic} AudioMediaCharacteristic 'ears' {audio media characteristic} {selectors for derived media handler components} kMediaInitializeSelect = $501; {MediaInitialize} kMediaSetHandlerCapabilitiesSelect = $502; {MediaSetHandlerCapabilities} kMediaIdleSelect = $503; {MediaIdle} kMediaGetMediaInfoSelect = $504; {MediaGetMediaInfo} kMediaPutMediaInfoSelect = $505; {MediaPutMediaInfo} kMediaSetActiveSelect = $506; {MediaSetActive} kMediaSetRateSelect = $507; {MediaSetRate} kMediaGGetStatusSelect = $508; {MediaGGetStatus} kMediaTrackEditedSelect = $509; {MediaTrackEdited} kMediaSetMediaTimeScaleSelect = $50A; {MediaSetMediaTimeScale} kMediaSetMovieTimeScaleSelect = $50B; {MediaSetMovieTimeScale} kMediaSetGWorldSelect = $50C; {MediaSetGWorld} kMediaSetDimensionsSelect = $50D; {MediaSetDimensions} kMediaSetClipSelect = $50E; {MediaSetClip} kMediaSetMatrixSelect = $50F; {MediaSetMatrix} kMediaGetTrackOpaqueSelect = $510; {MediaGetTrackOpaque} kMediaSetGraphicsModeSelect = $511; {MediaSetGraphicsMode} kMediaGetGraphicsModeSelect = $512; {MediaGetGraphicsMode} kMediaGSetVolumeSelect = $513; {MediaGSetVolume} kMediaSetSoundBalanceSelect = $514; {MediaSetSoundBalance} kMediaGetSoundBalanceSelect = $515; {MediaGetSoundBalance} kMediaGetNextBoundsChangeSelect = $516; {MediaGetNextBoundsChange} kMediaGetSrcRgnSelect = $517; {MediaGetSrcRgn} kMediaPrerollSelect = $518; {MediaPreroll} kMediaSampleDescriptionChangedSelect= $519; {MediaSampleDescriptionChanged} kMediaHasCharacteristicSelect = $51A; {MediaHasCharacteristic}Data Type
TYPE GetMovieCompleteParams = RECORD version: Integer; {version; always 0} theMovie: Movie; {movie identifier} theTrack: Track; {track identifier} theMedia: Media; {media identifier} movieScale: TimeScale; {movie's time scale} mediaScale: TimeScale; {media's time scale} movieDuration: TimeValue; {movie's duration} trackDuration: TimeValue; {track's duration} mediaDuration: TimeValue; {media's duration} effectiveRate: Fixed; {media's effective rate} timeBase: TimeBase; {media's time base} volume: Integer; {media's volume} width: Fixed; {width of display area} height: Fixed; {height of display area} trackMovieMatrix: MatrixRecord; {transformation matrix} moviePort: CGrafPtr; {movie's graphics port} movieGD: GDHandle; {movie's graphics device} trackMatte: PixMapHandle; {track's matte} END;Routines
Managing Your Media Handler Component
FUNCTION MediaInitialize (ci: ComponentInstance; VAR gmc: GetMovieCompleteParams): ComponentResult; FUNCTION MediaIdle (ci: ComponentInstance; atMediaTime: TimeValue; flagsIn: LongInt; VAR flagsOut: LongInt; VAR movieTime: TimeRecord): ComponentResult; FUNCTION MediaGGetStatus (ci: ComponentInstance; VAR statusErr: ComponentResult): ComponentResult;General Data Management
FUNCTION MediaPutMediaInfo (ci: ComponentInstance; h: Handle): ComponentResult; FUNCTION MediaGetMediaInfo (ci: ComponentInstance; h: Handle): ComponentResult; FUNCTION MediaSetActive (ci: ComponentInstance; enableMedia: Boolean): ComponentResult; FUNCTION MediaPreroll (ci: ComponentInstance; time: TimeValue; rate: Fixed): ComponentResult; FUNCTION MediaSetRate (ci: ComponentInstance; rate: Fixed): ComponentResult; FUNCTION MediaTrackEdited (ci: ComponentInstance): ComponentResult; FUNCTION MediaSampleDescriptionChanged (ci: ComponentInstance; index: LongInt): ComponentResult; FUNCTION MediaHasCharacteristic (ci: ComponentInstance; characteristic: OSType; VAR hasIt: Boolean): ComponentResult; FUNCTION MediaSetMediaTimeScale (ci: ComponentInstance; newTimeScale: TimeScale): ComponentResult; FUNCTION MediaSetMovieTimeScale (ci: ComponentInstance; newTimeScale: TimeScale): ComponentResult;Graphics Data Management
FUNCTION MediaSetGWorld (ci: ComponentInstance; aPort: CGrafPtr; aGD: GDHandle): ComponentResult; FUNCTION MediaSetDimensions (ci: ComponentInstance; width: Fixed; height: Fixed): ComponentResult; FUNCTION MediaSetMatrix (ci: ComponentInstance; VAR trackMovieMatrix: MatrixRecord): ComponentResult; FUNCTION MediaSetClip (ci: ComponentInstance; theClip: RgnHandle): ComponentResult; FUNCTION MediaGetTrackOpaque (ci: ComponentInstance; VAR trackIsOpaque: Boolean): ComponentResult; FUNCTION MediaGetNextBoundsChange (ci: ComponentInstance; VAR when: TimeValue): ComponentResult; FUNCTION MediaGetSrcRgn (ci: ComponentInstance; rgn: RgnHandle; atMediaTime: TimeValue): ComponentResult;Sound Data Management
FUNCTION MediaGSetVolume (ci: ComponentInstance; volume: Integer): ComponentResult;Base Media Handler Utility Routine
FUNCTION MediaSetHandlerCapabilities (ci: ComponentInstance; flags: LongInt; flagsMask: LongInt): ComponentResult;
Main | Top of Section | What's New | Apple Computer, Inc. | Find It | Feedback | Help